/**
 * Weighted ASCII-art entry used by the PR comment UI.
 *
 * The `art` string is a fully composed block (lines joined by `\n`).
 * `weight` controls selection probability when sampling from the set.
 * Use small positive integers (>= 1); a default of `1` is typical.
 *
 * @see ASCII_SET
 * @example
 * // Access the first entry and print its art
 * console.log(ASCII_SET[0].art);
 */
export interface WeightedAsciiArt {
	art: string;
	weight: number;
}

/**
 * Catalog of weighted ASCII art used in docs preview comments.
 *
 * - Each entry is immutable and satisfies `WeightedAsciiArt`.
 * - Selection is weighted by `weight` (non-negative integers recommended).
 * - The array is readonly; consumers must not mutate it.
 *
 * @see WeightedAsciiArt
 */
export const ASCII_SET = [
	{
		art: [
			'⠀⠀⠀⠀⠀⠀_____⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀_____',
			"⠀⠀---'⠀⠀⠀__\\______⠀⠀⠀⠀⠀⠀______/__⠀⠀⠀`---",
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀______)⠀⠀⠀⠀(______',
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀__)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(__',
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀__)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(__',
			'⠀⠀---.______)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(______.---',
			'',
			'All⠀signs⠀point⠀to…⠀your⠀docs⠀update⠀is⠀ready',
		].join('\n'),
		weight: 1,
	},
	// {
	// 	art: [
	// 		'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀_⠀⠀⠀⠀⠀⠀⠀⠀⠀',
	// 		'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀_(⠀⠀)⠀⠀⠀⠀⠀⠀I just served up',
	// 		'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(⠀⠀⠀)⠀)⠀⠀⠀⠀⠀your docs,',
	// 		'⠀⠀_⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(⠀⠀⠀⠀_)⠀⠀⠀⠀⠀⠀⠀⠀',
	// 		'⠀(⠀⠀)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(⠀(⠀⠀)⠀⠀⠀⠀⠀chef’s kiss.',
	// 		'⠀(⠀⠀⠀)⠀⠀⠀⠀⠀⠀_⠀,-.⠀_⠀⠀⠀⠀⠀)⠀⠀)⠀⠀⠀⠀⠀(⠀⠀⠀⠀⠀⠀',
	// 		"⠀⠀(⠀(⠀⠀,-'''⠀⠀)_(⠀⠀```-.,'⠀⠀⠀⠀⠀⠀⠀⠀⠀)⠀⠀",
	// 		'⠀⠀⠀⠀`-(⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀)⠀⠀⠀⠀⠀⠀⠀⠀)⠀(⠀⠀⠀',
	// 		"⠀⠀⠀⠀__|`-..._______...-'|__⠀⠀⠀⠀⠀⠀⠀(⠀⠀)⠀⠀",
	// 		'⠀⠀⠀[===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀|==]⠀⠀⠀⠀____(___⠀⠀⠀⠀⠀⠀⠀⠀__,.--.',
	// 		"⠀⠀⠀⠀⠀⠀|⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀|__,-_''.------.``_-.-''__,.--'",
	// 		"⠀⠀⠀⠀⠀⠀|⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀|⠀((⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀))-'⠀/⠀|⠀⠀⠀",
	// 		"⠀⠀⠀⠀⠀⠀|⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀|⠀⠀\\`-...______...-'/⠀/⠀/⠀|⠀⠀⠀",
	// 		"⠀⠀⠀⠀⠀⠀`-..._______...-'⠀⠀⠀⠀`-...______...-'⠀/⠀/⠀|⠀⠀⠀",
	// 		"⠀⠀⠀⠀⠀/⠀/`-⠀,-----.⠀-'⠀⠀⠀⠀⠀⠀⠀⠀`-⠀,----.⠀-'⠀⠀/⠀/⠀|⠀⠀⠀",
	// 		'⠀⠀⠀⠀⠀/⠀/___________________________________/⠀/⠀⠀|⠀⠀⠀',
	// 		"⠀⠀⠀⠀`---------------------------------------'⠀⠀⠀|⠀⠀⠀",
	// 		'⠀⠀⠀⠀|⠀⠀⠀__________________________________|⠀|⠀⠀⠀',
	// 		'⠀⠀⠀⠀|⠀⠀|⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀|⠀⠀|⠀⠀⠀⠀⠀|⠀⠀⠀',
	// 		'⠀⠀⠀⠀|⠀⠀|___-_-___-___-_-___-_-_____-_-___|⠀⠀|⠀⠀⠀⠀⠀|⠀⠀⠀',
	// 		'⠀⠀⠀⠀|⠀(___________________________________)⠀|⠀⠀⠀⠀⠀',
	// 		'⠀⠀⠀⠀|⠀⠀|⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-|⠀⠀|⠀⠀⠀⠀⠀',
	// 		'⠀⠀⠀⠀|⠀⠀|⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-⠀-|⠀⠀|⠀⠀⠀⠀⠀',
	// 	].join('\n'),
	// 	weight: 1,
	// },

	{
		art: [
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀150x⠀⠀⠀⠀⠀300x',
			'⠀⠀⠀⠀⠀100x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀600x',
			'',
			'⠀⠀⠀80x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀1200x',
			'',
			'⠀60x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀2400x',
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(")',
			'40x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\\⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀5000x',
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\\',
			'⠀20x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\\⠀⠀⠀⠀⠀⠀⠀⠀5000x',
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀vibes⠀⠀\\',
			'⠀⠀⠀⠀0x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\\⠀⠀⠀⠀⠀1000000x',
			'',
			'⠀⠀we⠀cant⠀keep⠀up⠀with⠀these⠀vibes',
		].join('\n'),
		weight: 1,
	},
	{
		art: [
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀_⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
			'⠀⠀⠀⠀⠀⠀⠀|⠀⠀⠀(_)⠀⠀⠀⠀|⠀⠀⠀⠀⠀⠀',
			'⠀⠀⠀⠀⠀⠀|⠀⠀⠀⠀_)⠀⠀|⠀⠀⠀⠀⠀⠀⠀⠀⠀',
			'⠀⠀(⠀⠀⠀⠀⠀⠀⠀(⠀⠀⠀⠀⠀|⠀⠀⠀⠀⠀⠀⠀⠀',
			'⠀⠀⠀(⠀⠀_.-"""-._⠀⠀⠀⠀)⠀⠀⠀⠀⠀',
			"⠀⠀(⠀.'⠀⠀⠀⠀⠀⠀⠀⠀⠀`.⠀⠀⠀)⠀⠀⠀⠀",
			'⠀⠀⠀/⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\\⠀⠀)⠀⠀⠀⠀',
			'⠀⠀|_=_=_=_=_=_=_=_|⠀⠀⠀⠀⠀⠀',
			"⠀⠀⠀\\⠀⠀'⠀⠀⠀⠀⠀⠀⠀'⠀⠀/⠀⠀⠀⠀⠀⠀⠀",
			"⠀⠀⠀⠀\\⠀`:⠀⠀⠀⠀⠀:'⠀/⠀⠀⠀⠀⠀⠀⠀⠀",
			"⠀⠀⠀⠀⠀\\⠀`:⠀⠀⠀:'⠀/⠀⠀⠀",
			"⠀⠀⠀⠀⠀⠀\\⠀`:⠀:'⠀/⠀⠀",
			"⠀⠀⠀⠀⠀⠀⠀\\⠀`:'⠀/⠀⠀",
			"⠀⠀⠀⠀⠀⠀⠀⠀\\`'/⠀⠀'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
			'⠀⠀⠀⠀⠀⠀⠀⠀__||__⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀',
			'⠀⠀⠀⠀⠀⠀⠀|⠀docs⠀|',
			"⠀⠀⠀⠀⠀⠀⠀'------'",
			'your⠀docs⠀are⠀dropping⠀hot',
		].join('\n'),
		weight: 1,
	},
	{
		art: [
			'⠀⠀__',
			'⠀(`/\\',
			'⠀`=\\/\\⠀__...--~~~~~-._⠀⠀⠀_.-~~~~~--...__',
			'⠀⠀`=\\/\\⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\\⠀/⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\\\\',
			'⠀⠀⠀`=\\/⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀V⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\\\\',
			'⠀⠀⠀//_\\___--~~~~~~-._⠀⠀|⠀⠀_.-~~~~~~--...__\\\\',
			'⠀⠀//⠀⠀)⠀(..----~~~~._\\⠀|⠀/_.~~~~----.....__\\\\',
			'⠀===================\\\\|//====================',
			'',
			'I⠀just⠀read⠀your⠀latest⠀docs⠀update,⠀you’re⠀a⠀real⠀page⠀turner.',
		].join('\n'),
		weight: 1,
	},
	{
		art: [
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀/⠀\\',
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀/⠀_⠀\\',
			"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀|.o⠀'.|",
			"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀|'._.'|",
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀|⠀⠀⠀⠀⠀|',
			"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀,'|⠀⠀|⠀⠀|`.",
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀/⠀⠀|⠀⠀|⠀⠀|⠀⠀\\',
			"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀|,-'--|--'-.|",
			'I just launched your docs update into orbit.',
		].join('\n'),
		weight: 1,
	},
	{
		art: [
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀___',
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(⠀((',
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀)⠀))⠀⠀⠀⠀⠀⠀⠀Your⠀docs⠀update⠀is⠀sharp',
			'⠀⠀.::.⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀/⠀/(',
			"⠀'M⠀.-;-.-.-.-.-.-.-.-.-/|⠀((::::::::::::::::::::::::::::::::::::::::::::::.._",
			'(J⠀(⠀(⠀(⠀(⠀(⠀(⠀(⠀(⠀(⠀(⠀(⠀|⠀⠀))⠀⠀⠀-====================================-⠀⠀⠀⠀⠀⠀_.>',
			"⠀`P⠀`-;-`-`-`-`-`-`-`-`-\\|⠀((::::::::::::::::::::::::::::::::::::::::::::::''",
			"⠀⠀`::'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\\⠀\\(",
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀)⠀))⠀⠀⠀⠀⠀⠀⠀and⠀ready⠀for⠀battle',
			'⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(_((',
		].join('\n'),
		weight: 1,
	},
] as const satisfies _AsciiSet;

/**
 * Readonly view of the ASCII-art catalog entries.
 *
 * Used to validate the shape of `ASCII_SET` and to keep its elements
 * readonly at the type level.
 *
 * @internal
 */
type _AsciiSet = readonly Readonly<WeightedAsciiArt>[];
/**
 * U+2800 (Braille Pattern Blank). GitHub Markdown collapses ASCII spaces in
 * some contexts; this character keeps visual alignment stable.
 */
export const BRAILLE_SPACE = '⠀';
/**
 * Left indentation applied to each ASCII-art line to improve readability and
 * avoid overflowing the quote/code block boundary.
 */
export const LEFT_PAD = '   ';
